package fr.utbm.tx52.photo;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

import fr.utbm.tx52.dataManagement.DataManager;
import fr.utbm.tx52.sharing.CommentAdder;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;


/**
 * Prise de photo en utilisant l'API du téléphone
 */
public class Photo extends Activity {

	/**
	 * Pour que chaque photo soit unique
	 */
	private SimpleDateFormat timeStampFormat = new SimpleDateFormat("yyyy-MM-dd-HH.mm.ss");

	/**
	 * Identifiant de l'activité qui va prendre la photo
	 */
	private static final int TAKE_PHOTO_CODE = 1;

	/**
	 * Chemin vers la photo
	 */
	private String filePath = "";

	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
		intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(getPhotoPath(this)) );
		startActivityForResult(intent, TAKE_PHOTO_CODE);
	}

	
	/**
	 * Permet d'obtenir le fichier qui contient la photo
	 * 
	 * @param context
	 * 
	 * @return Le fichier contenant la photo que l'on vient de prendre
	 */
	private File getPhotoPath(Context context){
		if ( filePath.equals("") ) {
			filePath = DataManager.DATA_PATH + timeStampFormat.format(new Date());
		}
		return new File(filePath);
	}


	/**
	 * Est appellée quand la prise de photo est terminée
	 */
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {

		if (resultCode == RESULT_OK) {
			
			switch(requestCode){

				case TAKE_PHOTO_CODE:
					
					final File file = getPhotoPath(this);
					filePath = "";
					
					Intent i = new Intent();
					i.setClass(getApplicationContext(), CommentAdder.class);
					i.putExtra("photopath", file.getPath());
					startActivity(i);
					this.finish();

					break;
			}
		}
		
		this.finish();
	}


}

